package com.qike.duola.service;

import com.qike.duola.domain.SysUser;
import com.qike.duola.dto.UserAddDto;
import com.qike.duola.dto.UserDelDto;
import com.qike.duola.dto.UserEditDto;
import com.qike.duola.dto.UserListDto;
import com.qike.duola.vo.*;
import org.springframework.mobile.device.Device;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * @Author: Eric.zhou
 * @Date: 2020/7/31 10:29
 */
public interface IsysUserService {

    LoginVo login(String userName, String pwd, Device device, HttpServletRequest request, HttpServletResponse response) throws Exception;


    /**
     * 添加人员
     * @param userAddDto
     */
    void userAdd(UserAddDto userAddDto) throws Exception;

    /**
     * 编辑员工
     * @param userEditDto
     */
    void userEdit(UserEditDto userEditDto) throws Exception;

    /**
     * 删除员工
     * @param userDelDto
     */
    void userDel(UserDelDto userDelDto) throws Exception;

    /**
     * 员工列表
     * @param userListDto
     * @return
     */
    UserListVo userList(UserListDto userListDto);

    /**
     * 用户详情
     * @param id
     * @return
     */
    UserInfoVo userInfo(Long id) throws Exception;

    /**
     * 人员下拉列表
     * @param name
     * @return
     */
    List<UserPullListVo> userPullList(String name);

    /**
     * 通过id获取人员 不传id 就是空
     * @param id
     * @return
     */
    List<SysUser> getAllUser(Long id);

    /**
     * 根据部门,姓名查询人员下拉列表
     * @param deptId
     * @param name
     * @return
     */
    List<UserPullListVo> userPullListByDeptId(Integer deptId, String name);

    /**
     * 获取用户详情
     * @return
     */
    GetUserInfoVo getUserInfo();
}
